package com.hhkj.study.admin.user.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.domain.BizBaseEntity;
import com.ruoyi.common.valid.VAdd;
import com.ruoyi.common.valid.VDisable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
*
* @author SERVER
* @since 2024-09-06
*/
@TableName(value = "x_user")
@EqualsAndHashCode(callSuper = true)
@Data
public class User extends BizBaseEntity {

	/**
	 * 类型 1：个人 2：企业
	*/
	private Integer type;
	/**
	 * 头像
	*/
	private String avatarPicUrl;
	/**
	 * 密码
	*/
	@JsonIgnore
	private String password;
	/**
	 * 姓名
	*/
	@NotBlank(message = "姓名不能为空", groups = VAdd.class)
	private String name;
	/**
	 * 昵称
	*/
	private String nickName;
	/**
	 * 身份证号
	*/
	private String idCard;
	/**
	 * 性别 0:未知 1:男 2:女
	*/
	private Integer gender;
	/**
	 * 注册来源 1.网站 2：视频号 3.抖音
	*/
	private Integer registerSource;
	/**
	 * 手机号码
	*/
	@Length(min = 11, max = 11, message = "手机号码长度为11位")
	@NotBlank(message = "手机号码不能为空", groups = VAdd.class)
	private String mobile;
	/**
	 * 所在省份,关联x_dict_multi_level表id
	*/
	private Long provinceId;
	/**
	 * 所在城市,关联x_dict_multi_level表id
	*/
	private Long cityId;

	/**
	 * 实际工作区域,关联x_dict_multi_level表id
	 */
	private Long realRegionId;

	/**
	 * 毕业时间
	 */
	@JsonFormat(pattern = "yyyy", timezone = "GMT+8")
	private Date graduationDate;
	/**
	 * 职位
	*/
	private String post;
	/**
	 * 学历
	*/
	private String academic;
	/**
	 * 工作年限
	*/
	private Integer workYears;
	/**
	 * 所在行业
	 */
	private String belongIndustry;
	/**
	 * 专业
	 */
	private String schoolProfession;
	/**
	 * 意向考试,关联x_intentional_exam中id
	*/
	private Long intentionalExamId;
	/**
	 * 常用邮箱
	*/
	private String email;
	/**
	 * 企业id,关联sys_user表中类型表示企业的user_id
	*/
	private Long companyId;
	/**
	 * 微信唯一标识id
	*/
	private String wxId;

	/**
	 * 是否添加企业微信客服1-是 0-否
	 */
	private Integer addWxCompanyFlag;
	/**
	 * 禁用账号原因
	*/
	private String disableReason;
	/**
	 * 删除账号原因
	*/
	private String delReason;
	/**
	 * 备注
	*/
	private String remark;
	/**
	 * 是否禁用 1：是 0：否
	*/
	@NotNull(message = "账号状态不能为空", groups = VDisable.class)
	private Integer disableFlag;
	/**
	 * 最近登录时间
	*/
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastLoginTime;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date registerTime;

}